var store;

Ext.onReady(function()
{
    store = new X.store.Json({
        url : '/solicitudpg/ajax-listar',
        fields : [
            'codigoSolicitud',
            'fechaSolicitud',
            'numeroSolicitud',
            'monto',
            'concepto',
            'observaciones'
        ]
    });

	var btnBuscar_onClick = function(){
		store.setBaseParam('filtroEstado',       Ext.getCmp('filtroEstado')      .getValue());
		store.setBaseParam('filtroInicial',      Ext.getCmp('filtroInicial')     .getValue());
		store.setBaseParam('filtroFinal',        Ext.getCmp('filtroFinal')       .getValue());
		store.reload();
	};

	var form = new X.form.FormPanel({
		title            : '',
		width            : 1020,
		height           : 600,
		labelWidth       : 90,
		layout           : 'absolute',

		items:[
			new Ext.form.FieldSet({title:'Filtro de Busqueda', x: 350, y: 5, width: 370, height: 150, layout:'absolute', items:
				[
					{layout:'form', x: 10, y: 3, items:[
						new X.field.Date ({fieldLabel:'Fecha Inicial', id:'filtroInicial', width:230, allowBlank: true, endDateField:'filtroFinal'}),
						new X.field.Date ({fieldLabel:'Fecha Final',   id:'filtroFinal',   width:230, allowBlank: true, startDateField:'filtroInicial'}),
						new X.field.Combo ({
							id           : 'filtroEstado',
							hiddenName   : 'codigoEstado',
							fieldLabel   : 'Estado',
							valueField   : 'codigoEstado',
							displayField : 'nombreEstado',
							allowBlank   : true,
							editable     : false,
							forceSelection: true,
							width        : 230,
							mode: 'local',
							store: new Ext.data.ArrayStore({
								id: 0,
								fields: [
									'codigoEstado',
									'nombreEstado'
								],
								data: [[1, 'No Aprobados'], [2, 'Aprobados'], [3, 'Rechazados']]
							})
						})
					]},
					{layout:'form', x: 105, y: 90, items:[
						new Ext.Button   ({text:'Buscar', width:230, handler:btnBuscar_onClick})
					]}
				]}),
			new Ext.form.FieldSet({title:'', x: 10, y: 165,items:
				[
					new X.grid.GridPanel({

						id       : 'grid',
						title    : 'Lista de Ordenes de Pago',
						height   : 370,
						width    : 960,
						store    : store,

						columns:[
							new X.column.Text  ({header: 'Nro Solicitud', dataIndex: 'numeroSolicitud',width: 90}),
							new X.column.Date  ({header: 'Fecha',         dataIndex: 'fechaSolicitud', width: 80}),
							new X.column.Money ({header: 'Monto',         dataIndex: 'monto',          width: 90}),
							new X.column.Text  ({header: 'Concepto',      dataIndex: 'concepto',       width: 250}),
							new X.column.Text  ({header: 'Justificacion', dataIndex: 'observaciones',  width: 250}),
							new X.column.View  ({ViewUrl    : '/solicitudpg/ver-pdf',
								idColumn   : 'codigoSolicitud'}),
							{xtype: 'actioncolumn', width: 28, items: [ {
								icon   : '/img/icon_editar.png',
								tooltip: 'Editar',
								handler : function(grid, rowIndex, colIndex)
								{
									var rec = grid.getStore().getAt(rowIndex);
									Ext.Ajax.request({
										url     : '/solicitudpg/ajax-canedit',
										method  : 'POST',
										params  : { id : rec.get('codigoSolicitud') },
										success : function (result, request){
											var obj = Ext.util.JSON.decode(result.responseText);
											if (obj.success){
												window.location = '/solicitudpg/editar?id=' + rec.get('codigoSolicitud');
											}
											else{
												Ext.Msg.show({msg:obj.msg,icon: Ext.Msg.ERROR, buttons:Ext.Msg.OK});
											}

										},
										failure : function (result, request){
											Ext.Msg.show({msg:'Error',icon: Ext.Msg.ERROR, buttons:Ext.Msg.OK});
										}
									})
								}
							}]},
							new X.column.Delete({deleteUrl  : '/solicitudpg/ajax-eliminar',
								idColumn   : 'codigoSolicitud',
								msgName    : 'la solicitud con numero',
								msgNameCol : 'numeroSolicitud'})
						]

					})
				]})
		]
	});
});
